/**
 * ES5 规范增加了新的语言特性并且修改了一些已经存在的特性。
为了保证旧的功能能够使用，大部分的修改是默认不生效的。
你需要一个特殊的指令 —— "use strict" 来明确地激活这些特性。

必须出现在脚本的最顶部
 */
"use strict"
// alert("I'm JavaScripte!")
// let name = "John";
// let admin = name;
// alert(admin)
// alert(`the result is ${1 + 2}`);
// alert(typeof 0)
// let result = prompt("How old are you?", '');
// alert(`you are ${result} years old`);
// // 字符串转数字会失败，返回NaN值
// alert(Number("as23"));

// let officialName = prompt("What is the “official” name of JavaScript?","ECMAScript");
// if (officialName == "ECMAScript") {
//     alert("Right!");
// } else {
//     alert("Didn’t know?ECMAScript!");
// }

// let message = (login == 'Employee') ? 'Hello' :
// (login == 'Director') ? 'Greetings' : 
// (login == '') ? 'No login' : '';

// let userName = prompt("Who's there?", "");
// if(userName == "Admin") {
//     let password = prompt("Password?", "");
//     if(password == "TheMaster") {
//         alert("Welcome!");
//     }else if (password == "" || password == null) {
//         alert("Canceled");
//     }else {
//         alert("Wrong password");
//     }
// }else if (userName == "" || userName == null) {
//     alert("Canceled.");
// }else {
//     alert("I don't know you");
// }

// while(true) {
//     let number = prompt("Enter a number greater than 100", "");
//     if(number > 100 || number == "" || number == null) {
//         break;
//     }
// }

// let n = prompt("please input one number:", "");
// for(let i = 2;i < n;i++) {
//     let flag = true;
//     for(let j=2; j<i; j++) {
//         if(i%j == 0) {
//             flag = false;
//         }
//     }
//     if(flag) {
//         alert(i);
//     }
// }

// function showMessage(from, text) {
//     alert(from + ":" + text);
//     alert(from + ":" + (text ?? "unknown"))
// }

// showMessage("Admin")

// function checkAge(age) {
//     return age > 18 ? true : confirm("Do you have your parents permission to access this page?");
// }

// function getMinNumber(a, b) {
//     return (a < b) ? a : b;
// }

// let pow = function (x, n) {
//     let result = 1;
//     for (let i = 0; i < n; i++) {
//         result = result * x;
//     }
//     return result;
// }

// let x = prompt("enter X:", "");
// let n = prompt("enter N:", "");
// alert(pow(+x, +n));

// let ask = (question, yes, no) => {
//     if (confirm(question)) {
//         yes();
//     } else {
//         no();
//     }
// }

// 在调用之前
// let menu = {
//     width: 200,
//     height: 300,
//     title: "My menu"
//   };

// function multiplyNumric(menu) {
//     for (let key in menu) {
//         if (typeof menu[key] == "number") {
//             menu[key] *= 2;
//         }
//     }
//     for (let key in menu) {
//         alert(menu[key]);
//     }

// }
// multiplyNumric(menu)

// let user = {
//     name:"hwq",
//     age:30,
//     sayno(){
//         alert(user.age);
//     }
// };
// user.sayHi = function(){
//     alert("hello everybody");
// };
// user.sayHi();
// user.sayno();

// let admin = user;
// user = null;
// admin.sayno();

// function sayHi(){
//     alert(this);
// }
// sayHi();

// let calculator = {
//     a:0,
//     b:0,
//     read(){
//         this.a = prompt("a","");
//         this.b = prompt("b", "");
//     },
//     sum(){
//         return Number(this.a) + Number(this.b);
//     },
//     mul(){
//         return this.a * this.b;
//     }
// }

// calculator.read();
// alert(calculator.sum());
// alert(calculator.mul());

// let ladder = {
//     step: 0,
//     up() {
//       this.step++;
//       return this;
//     },
//     down() {
//       this.step--;
//       return this;
//     },
//     showStep: function() { // 显示当前的 step
//       alert( this.step );
//     }
//   };
//   ladder.up().up().down().showStep(); // 1

// function User(name) {
//     this.name = name;
//     this.sayHi = function() {
//         alert("My name is: " + this.name);
//     };
// }
// let john = new User("John");
// john.sayHi();

// function Accumulator(startingValue) {
//     this.value = startingValue;

//     this.read = function() {
//         let temp = +prompt("Input:", "");
//         this.value += temp;
//     }
// }

let id = Symbol("id");
let iid = Symbol("id");
let user = {
    name: "hwq",
    [id] : 2,
    [iid] : 3
};
alert(user[id]);